/******************************************************************************
 * Copyright (C) 2011 ShenZhen ComTop Information Technology Co.,Ltd
 * All Rights Reserved.
 * 本软件为深圳康拓普开发研制。未经本公司正式书面同意，其他任何个人、团体不得使用、
 * 复制、修改或发布本软件.
 *****************************************************************************/

package com.code.common.excel.officeexport.excel.help;

import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;


/**
 * 导出默认样式
 * 
 * @author 李鹏
 * @since 1.0
 * @version 2012-11-15 李鹏
 */
public class ExcelDefaultStyle {
    
    /**
     * 设置标题样式
     * 
     * @param workbook 工作表
     * @param exportField 单元格
     * @return 单元格样式
     * @throws OfficeException 如果在运行过程当中出现错误就抛出异常OfficeException.
     */
    public static HSSFCellStyle getTitleStyle(HSSFWorkbook workbook) throws Exception {
        HSSFCellStyle objHSSFCellStyle = workbook.createCellStyle();
        HSSFFont objFont = setDefaultTitleFont(workbook);
        objHSSFCellStyle.setFont(objFont);
        setDefaultBorder(objHSSFCellStyle);
        objHSSFCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        return objHSSFCellStyle;
    }
    
    /**
     * 设置头样式
     * 
     * @param workbook 工作表
     * @param exportField 单元格
     * @return 单元格样式
     * @throws OfficeException 如果在运行过程当中出现错误就抛出异常OfficeException.
     */
    public static HSSFCellStyle getHeadStyle(HSSFWorkbook workbook) throws Exception {
        HSSFCellStyle objHSSFCellStyle = workbook.createCellStyle();
        HSSFFont objFont = setDefaultHeadFont(workbook);
        objHSSFCellStyle.setFont(objFont);
        objHSSFCellStyle.setWrapText(true);
        objHSSFCellStyle.setFillBackgroundColor(HSSFColor.DARK_BLUE.index);
        setDefaultBorder(objHSSFCellStyle);
        objHSSFCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        return objHSSFCellStyle;
    }
    
    /**
     * 设置默认边框格式
     * 
     * @param objHSSFCellStyle 样式
     */
    public static void setDefaultBorder(HSSFCellStyle objHSSFCellStyle) {
        objHSSFCellStyle.setBottomBorderColor(HSSFColor.BLACK.index);
        objHSSFCellStyle.setTopBorderColor(HSSFColor.BLACK.index);
        objHSSFCellStyle.setLeftBorderColor(HSSFColor.BLACK.index);
        objHSSFCellStyle.setRightBorderColor(HSSFColor.BLACK.index);
        objHSSFCellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
        objHSSFCellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
        objHSSFCellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
        objHSSFCellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
    }
    
    /**
     * 设置标题默认字体
     * 
     * @param workbook 工作表
     * @return 字体
     */
    private static HSSFFont setDefaultTitleFont(HSSFWorkbook workbook) {
        HSSFFont objFont = workbook.createFont();
        objFont.setFontName("宋体");
        objFont.setFontHeight((short) 500);
        objFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
        return objFont;
    }
    
    /**
     * 设置题头默认字体
     * 
     * @param workbook 工作表
     * @return 字体
     */
    private static HSSFFont setDefaultHeadFont(HSSFWorkbook workbook) {
        HSSFFont objFont = workbook.createFont();
        objFont.setFontName("宋体");
        objFont.setFontHeight((short) 200);
        objFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
        objFont.setItalic(true);
        return objFont;
    }
    
}
